package cn.tedu.cn;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

//测试 Hashmap 的使用
public class Test1_Map {
    public static void main(String[] args) {
        //1 统计用户输入的字符串中，每个字符出现的次数
        String input = new Scanner(System.in).nextLine();
        //定义map
        Map<Character,Integer> map = new HashMap<>();
        //2 遍历字符串，获取每个字符
        for (int i = 0; i <input.length() ; i++) {
            //根据下标获取每个字符
            char key = input.charAt(i);
            //根据key获取value
            Integer value = map.get(key);
            //根据key获取value，判断，是null的话就没存过，直接1
            //判断，有值，不是null的话，就是以前存过，直接+1
            if(value == null){
                //TODO  向map里存入数据时，会拿着key计算存储位置
                //如果节点上没存过数据，就尽量存在数组节点上。
                //如果节点上存过数据了，再去判断key存在过吗，存过就把原来的value覆盖掉，key不存在那就是一个新节点形成链接

                map.put(key,1);
            }else{
                map.put(key,value+1);
            }

        }
        System.out.println(map);

    }
}